Placement of resource-consuming clients, such as virtual machines (VMs), on the right host devices in a distributed computer system is an important factor in efficiently utilizing physical resources in the distributed computer system. An effective client placement strategy must meet the requirements of the clients and optimize several, sometimes conflicting, goals, while taking into consideration the complexities of the distributed computer system.
After the clients have been properly placed on the appropriate host devices in the distributed computer system, some of these clients may have to be moved to different host devices for various reasons. As an example, one or more physical components of the distributed computer system may fail, which may reduce the amount of available resources for the clients at their current host devices. As another example, the performance of one or more physical components of the distributed computer system may degrade over time, which may affect the ability of the clients to meet their performance goals at their current host devices.
In these situations, the clients may need to be manually moved from their current host devices to other host devices that can satisfy the requirements of the clients. However, determining which host devices in the distributed computer system satisfy the requirements of the clients and manually moving the clients to those host devices can be complex and challenging due to the numerous parameters to consider.